Method of acquiring a gps signal by iterative decoding

ABSTRACT

The invention relates to a method of acquiring a GPS signal, spread by a Gold sequence obtained as the sum of a first M-sequence and a second M-sequence, this second M-sequence being characteristic of a satellite among a plurality of satellites in the GPS system. The acquisition method comprises a sampling step starting from a given time ( 410 ), a multiplication step for the sequence of samples obtained with the first M-sequence ( 420 ) and an iterative decoding step for the decoded values ( 430 ) making it possible to estimate the content of the second shift register of the second M-sequence at said given time. If the content thus estimated is identical to the initial content of the second register for an identified satellite ( 443 ), the receiver is synchronised with this satellite at said given time ( 490 ).

TECHNICAL FIELD

This invention relates in general to the field of satellite positioning systems such as the GPS (Global Positioning System) system and the Galileo system. It is more particularly applicable to the satellite signal acquisition phase using a GPS receiver.

STATE OF PRIOR ART

Conventionally, a GPS receiver determines its position by measuring the time-of-flight of signals received from a plurality of satellites (in principle at least four). The receiver uses a so-called C/A (Coarse Acquisition) channel on which the satellite emits a spectrally spread navigation message using a pseudo random sequence (called the spreading sequence) with good auto-correlation and inter-correlation properties (using PRN sequences used by other satellites), to estimate the time-of-flight of a GPS signal emitted by a satellite.

The good self-correlation properties of spreading sequences optimise the probability of detecting a signal in the presence of noise, while the good inter-correlation properties of these sequences enable the different satellites to share a single transmission band using a code distribution multiple access (CDMA).

The first task of a GPS receiver is to detect visible satellites. To achieve this, the receiver attempts to detect the spreading code of the satellite for which it wants to test the presence, and possibly to synchronise itself relative to this signal. This first task is called the GPS signal acquisition step.

Many methods of acquisition of the GPS signal are known in the state of art, they form part of the problem of multi-user detection in CDMA systems. In particular, the articles by A. Polydoros et al. entitled “A unified approach to serial search spread spectrum code acquisition” Part I: A general theory & Part II: a matched filter receiver, published in IEEE Trans. on. Comm., Vol. 32, No. 5, 1984 and the article by F. Principe et al. entitled “Rapid acquisition of Gold codes and related sequences using iterative message passing on redundant graphical models” published in Proc. MILCOM '06, 2006.

These acquisition methods are usually based on a correlation of the signal received by the receiver with the spreading code of the satellite to be tested.

However, the acquisition method described in the article by F. Principe mentioned above cannot provide a sufficiently low missed detection probability and false alarm probability at a low signal-to-noise ratio (SNR). The missed detection probability is the probability of not synchronising with a satellite spread sequence when the spread sequence is actually received by the receiver. The false alarm probability is the probability of synchronising with a spreading sequence that is not received by the receiver. At low signal-to-noise ratios, the false alarm probability is the probability of detecting a spread sequence in noise.

Furthermore, acquisition methods by correlation require that the different possible spreading codes should be tested one by one, which requires a long acquisition time in a series configuration, and high complexity in a parallel configuration.

The article by K. M. Chugg entitled “A new approach to rapid PN code acquisition using iterative message passing techniques” published in IEEE Journal on Selected Areas in Communications, Vol. 21, No. 5, May 2005, pp. 884-897 describes a method of acquiring a spread signal by means of a maximum length sequence using an iterative message passing decoding technique.

The purpose of this invention is to disclose a method of acquiring a satellite signal, particularly a GPS signal, capable of detecting a spreading sequence with a low missed detection probability, even at a low signal-to-noise ratio.

One other purpose of this invention is to disclose a method of acquiring a satellite signal with a low false alarm probability, even at a low signal-to-noise ratio.

Another purpose of this invention is to disclose a method of acquiring a satellite signal with a better compromise between acquisition time and complexity than in prior art.

PRESENTATION OF THE INVENTION

This invention is defined by a method of acquiring a satellite signal by a receiver, said signal being spread by a Gold sequence at a chip frequency, said Gold sequence being obtained as the sum of a first M-sequence generated using a first shift register and a second M-sequence generated using a second shift register, said second M-sequence identifying one satellite among a plurality of satellites, said method comprising the following steps:

(a) the signal received in base band is sampled at the chip frequency starting from a determined time to provide a sequence of first samples;

(b) the sequence of said first samples is multiplied chip by chip by said first M-sequence to provide a sequence of second samples;

(c) the sequence of second samples is decoded using an iterative message passing decoding to supply an estimate of the content of the second shift register at said determined time;

(d) the content of the second shift register thus estimated is compared with a plurality of possible contents of the second shift register for the different satellites of said plurality, and if the comparison is successful for an identified satellite, the receiver is synchronised with said identified satellite at the determined time.

If the content of the second shift register thus estimated does not correspond to any of said possible contents, the determined time is incremented by one chip and steps (a) to (d) are iterated.

According to a first embodiment, the content of the second shift register is advantageously estimated by making hard decisions about the first r decoded value supplied by iterative message passing decoding, where r is the number of positions in the first/second shift register.

Iterative message passing decoding in step (c) preferably uses the parity matrix:

$H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$

in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the second M-sequence.

The second M-sequence is advantageously obtained by summating the contents in two positions α_(i), β_(i) of the second shift register, where i is an index identifying the satellite among said plurality of satellites, the possible contents of the second shift register for the different satellites being given by vectors:

A _(i) ^(init)=(G _(y) ^(α) ^(i+G) _(y) ^(β) ^(i) )A _(y) ^(init)

where A_(y) ^(init) is a vector giving the content of the second shift register at a reference time, and G_(y) is the state change matrix of the second shift register.

According to a second embodiment, the sequence of second samples is permuted using a permutation relation φ(k)=dk+h mod(N) where k is the rank of the sample, d is a decimation factor, h is an offset value and N is the length of the first M-sequence, switching being done before step (c);

step (c) provides a sequence of decoded values;

the sequence of decoded values is permuted using the permutation relation inverse to said permutation relation to provide a sequence of switched values;

the content of the second shift register is estimated by taking hard decisions on the first r values of the sequence of permuted values, where r is the number of positions in the first/second shift register.

Advantageously, the iterative message passing decoding in step (c) uses the parity matrix:

$H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$

in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the first M-sequence.

In one variant of the first and second embodiments, it is checked that the receiver is properly synchronised with said identified satellite by:

(e) multiplying the sequence of said first samples, chip by chip, by the second M-sequence associated with said identified satellite to provide a sequence of third samples;

(f) decoding the sequence of third samples using an iterative message passing decoding to provide an estimate of the content of the first shift register at said determined time.

If the content of the first shift register thus estimated does not correspond to the initial content of the first register, the determined time is incremented by one chip and steps (a) to (f) are iterated.

Preferably, the content of the first shift register is estimated by taking hard decisions on the first r decoded values provided by the iterative message passing decoding, where r is the number of positions in the first/second shift register.

Advantageously, the iterative message passing decoding in step (f) uses the parity matrix

$H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$

in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the first M-sequence.

According to one advantageous embodiment, the iterative message passing decoding in step (c) and the iterative message passing decoding in step (f) both use a “Min-Sum” type algorithm.

BRIEF DESCRIPTION OF THE DRAWINGS

Other features and advantages of the invention will become clear after reading the preferred embodiments of the invention with reference to the appended figures among which:

FIG. 1 diagrammatically shows a Fibonacci representation of a maximum sequence generator;

FIG. 2 gives C/A code parameters for different satellites;

FIG. 3 diagrammatically shows a C/A code generator in a GPS system;

FIG. 4 diagrammatically shows a satellite signal acquisition method according to a first embodiment of the invention;

FIG. 5 diagrammatically shows a satellite signal acquisition method according to a variant of the first embodiment of the invention;

FIG. 6 diagrammatically shows a satellite signal acquisition method according to a second embodiment of the invention;

FIG. 7 diagrammatically shows a satellite signal acquisition method according to a variant of the second embodiment of the invention.

DETAILED PRESENTATION OF PARTICULAR EMBODIMENTS

We will start by summarising how the C/A coarse synchronisation signal is emitted by a satellite in a positioning system such as the GPS system or the Galileo system.

The signal emitted by a satellite on the C/A channel can be expressed in the form:

$\begin{matrix} {{x_{i}(k)} = {{d\left( \left\lfloor \frac{k}{LN} \right\rfloor \right)}{c_{i}(k)}}} & (1) \end{matrix}$

where i=1, . . . , 32 is the index of the satellite, d(l) is the l^(th) BPSK symbol in the navigation message, k is a time index, c_(i)(k) is the k^(th) chip of the spread code associated with the satellite i, N is the length of the spread code (in practice N=1023 for the GPS system) and L is the number of BPSK symbols in the navigation message. For the GPS system, each d(l) symbol lasts for 20 ms, namely 20 repetition periods of the spreading code, the chip frequency (or chip rate) being 1.023 MHz.

The satellite signal received by the receiver on the C/A channel can then be written as follows, in base band:

$\begin{matrix} {{r(k)} = {{\sum\limits_{i = 1}^{l}{\rho_{i}{x_{i}(k)}^{2{{\pi j}{({{k\; \Delta \; F_{i}T} + \theta_{i}})}}}}} + {w(k)}}} & (2) \end{matrix}$

where I is the maximum number of satellites (I=32 in the GPS system), ρ_(i) is the attenuation coefficient of the signal on the link between the satellite i and the receiver, assumed to be constant during the time of the message, ΔF_(i) is the shift of the carrier frequency (mainly due to the Doppler shift) and θ_(i) is the phase of the signal from the satellite i (assumed to be constant), and finally w(k) is a noise sample assumed to be additive white Gaussian noise (AWGN) with variance σ².

The spreading sequences c, of the different satellites i=1, . . . , I are Gold sequences, each Gold sequence being constructed from a sum of two maximum length sequences also called M-sequences. It will be remembered that an M-sequence is a periodic series of values produced by a linear feedback shift register (LFSR) that explores all values that can be produced by the shift register. Any linear combination of two M-sequences with the same degree r (in other words generated by generating polynomials with the same degree) does not necessarily give a Gold sequence; a pair of M-sequences for which the sum gives a Gold sequence is called a pair of preferred sequences.

Each spreading sequences c_(i) in the C/A channel is constructed from a pair of preferred M-sequences, x and y. More precisely:

c _(i)(k)=x(k)+y(k−τ _(i))  (3)

where τ_(i) is a delay expressed as a number of chip periods specific to satellite i.

The x and y M-sequences are generated from the generating polynomials:

g _(x)(D)=D ¹⁰ +D ³+1

g _(y)(D)=D ¹⁰ +D ⁹ +D ⁸ +D ³ +D ²+1  (4)

respectively.

It will be remembered that an LFSR sequence generated by a generating polynomial

${g(D)} = {1 + {\sum\limits_{p = 1}^{r - 1}{g_{p}D^{p}}}}$

with degree r is obtained from a shift register with r memory positions (referred to more simply as positions in the following) and r connectors, looped back on itself as shown in FIG. 1, using the Fibonacci representation. The multiplication factors on the different connectors are factors of the generating polynomial.

An M-sequence is defined uniquely by its generating polynomial, the content of the shift register at the initial time giving its original value. An M-sequence generated by a generating polynomial (primitive) with degree r is periodic and its length is N=2^(r)−1.

The M-sequences x and Y are generated by initialising the positions of their corresponding shift registers to 1, namely X(0)=x(1)= . . . =x(9)=1 and y(0)=y(1)= . . . =y(9)=1.

The delayed sequence y_(i) defined by y_(i)(k)=u(k−τ_(i)) is advantageously obtained using the “add and shift” property of M-sequences. More precisely, the delays τ_(i) are chosen such that the sequence y_(i) can be generated from the sum of the contents in two positions α_(i) and β_(i) of the shift register generating the sequence y namely:

y _(i)(k)=a _(α) _(i) (k)+a _(β) _(i) (k)  (5)

where a_(α) _(i) (k), a_(β) _(i) (k) are the contents of the shift register at positions α_(i) and β_(i) respectively at time k, in other words a_(α) _(i) (k)=y(k+α_(i)) and a_(β) _(i) (k)=y(k+β_(i)).

FIG. 2 shows a table giving the parameters α_(i), β_(i) and τ_(i) for the different satellites. More precisely, the column entitled “code phase selection” gives the positions α_(i),β_(i) and the column entitled “code delay chips” gives the delay τ_(i). Finally, the last column provides the initialisation word, in other words the first 10 values of the sequence y_(i) in octal representation.

FIG. 3 diagrammatically shows a C/A code generator in a GPS system.

The generator 310 of the M-sequence X can be seen in the top part, and the generator 320 of the M-sequence y can be seen in the bottom part. The two generators 310 and 320 use shift registers looped back on themselves. For each generator, the connectors of the shift register correspond to the monomials of the corresponding generating polynomial. The phase selector 330 selectively summates some positions of the shift register of 320. These positions α_(i) and β_(i) are chosen using the table in FIG. 2, the sum of the contents of the register at these two positions supplying the delay sequence y_(i). This implementation is advantageous in that it does not require the use of a large delay line with length τ_(i).

The sum of M-sequences X and y_(i) in 350 gives the Gold sequence c in other words the spreading sequence for satellite i.

FIG. 4 diagrammatically shows a satellite signal acquisition method according to a first embodiment of the invention.

The first step is to consider synchronisation of the receiver relative to a GPS signal from a satellite i.

The receiver samples the received satellite signal at the chip frequency, after demodulation to base band.

At each time q, the receiver forms a vector in 410, composed of M successive signal samples thus received, namely r_(q)(k)=r(k+q), k=0, . . . , M−1, where M=N+1 is the period of the M-sequence (M=1024 in the GPS system).

The receiver then tests whether or not it is well synchronised with M-sequence X. To achieve this, it assumes that it is synchronised with this sequence and makes a chip by chip multiplication of the received signal with M-sequence X, in step 420, namely:

{tilde over (r)} _(q)(k)=r _(q)(k)X(k)  (6)

where X(k)=1−2x(k) is the bipolar representation (BPSK) of M-sequence X.

This operation eliminates M-sequence x from the received signal:

{tilde over (r)} _(q)(k)=ρ_(i) Y _(i)(k)+{tilde over (w)}(k)  (7)

where Y_(i)(k)=1−2 y_(i)(k) is the bipolar representation of M-sequence y_(i) and {tilde over (w)}(k) contains all noise sources.

It is deduced from expression (7) that vector {tilde over (r)}_(q)(k), k=0, . . . , M−1 is a noisy observation of M consecutive chips in sequence. y_(i)

An iterative message passing decoding is done in step 430 (also called a belief propagation decoding) of word {tilde over (r)}_(q)(k) k=0, . . . , M−1. The operation that associates the content (at time q) of the shift register of an M-sequence generator with the M-sequence itself may be considered as being cyclic linear coding with efficiency r/2′−1 (the size of the register word is r while the size of the M-sequence is N=2′−1).

In general, if an M-sequence Z defined by a generating polynomial

${g_{z}(D)} = {\sum\limits_{p = 0}^{r - 1}{g_{p}D^{p}}}$

is considered, there is the parity constraint:

$\begin{matrix} {{\sum\limits_{p = 0}^{r}{g_{r - p}{z\left( {p + k} \right)}}} = 0} & (8) \end{matrix}$

in which g_(r)=1 has been defined. The parity matrix of the code is the matrix with size (M−r)×M:

$\begin{matrix} {H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}} & (9) \end{matrix}$

Decoding is then done in the same way as for message passing decoding between variable nodes (variables y_(i)(k)) and constraint nodes (parity constraints given by the rows in the parity matrix H where the coefficients are the coefficients of the polynomial g_(y)(D)).

A description of the message passing decoding method has been given in the article by F. R. Kschichang et al. entitled “Factor graphs and the Sum-Product algorithm” published in IEEE Trans. on Information Theory, Vol. 47, No. 2, February 2001. A simpler but sub-optimal version of this algorithm was proposed by V. Savin in the article entitled “Self-corrected Min-Sum decoding of LDPC codes” published in Proc. of Intl Symposium on Information Theory (ISIT 2008), Toronto, July 2008.

Regardless of what version is used, decoding of the word {tilde over (r)}_(q)(k), k=0, . . . , M−1 (or only part of this word because it has very high redundancy) provides a vector {tilde over (Y)}_(i) ^(q)(k), k=0, . . . , M−r−1 (the index q has been added to emphasise that this vector was obtained assuming that the sequence was synchronised at time q), from which only the first r values giving the content of the register at the initial time q, as a result of hard decisions, are used. The values {tilde over (Y)}_(i) ^(q)(k) are logarithmic likelihood ratios (LLR) and therefore the content of the shift register at time q is given as follows:

A _(i) ^(q)(k)=sgn({tilde over (Y)} _(i) ^(q)), k=0, . . . , r−1  (10)

where sgn(•) is the sign function associating the value +1 to all positive values and the value −1 to all negative values.

The vector A_(i) ^(q)(k), k=0, . . . , r−1 is compared with the I=32 possible initialisation words of the shift register of sequence y_(i), denoted A_(i) ^(init), i=1, . . . , I, in step 440.

These initialisation words are deduced from the initialisation word A_(y) ^(init)=(1 . . . 1)^(T) of the shift register of sequence y. It should be remembered that according to expression (5):

y _(i)(k)=y(k+α _(i))+y(k+β _(i))  (11)

which can be translated into matrix form as:

A _(i)=(G _(y) ^(α) ^(i+G) _(y) ^(β) ^(i) )A _(y)  (12)

where A_(i) and A_(y) are the word contained in the shift register of sequence y_(i) and the word contained in the shift register of sequence y respectively, G_(y) is the state transposition matrix, in other words the matrix relating content vectors of the shift register at successive times, namely:

A _(y)(k+1)=G _(y) A _(y)(k)  (13)

The state transposition matrix G_(y) is given as follows:

$\begin{matrix} {G_{y} = \begin{bmatrix} 0 & 1 & 0 & 0 & \ldots & 0 \\ 0 & 0 & 1 & 0 & \ldots & 0 \\ 0 & 0 & 0 & 1 & \ldots & 0 \\ \vdots & \vdots & \vdots & 0 & \ddots & 0 \\ 0 & 0 & 0 & 0 & \ldots & 1 \\ 1 & g_{r - 1}^{y} & g_{r - 2}^{y} & g_{r - 3}^{y} & \ldots & g_{0}^{y} \end{bmatrix}} & (14) \end{matrix}$

where the coefficients g₀ ^(y), . . . , g_(r-1) ^(y) are the coefficients of the polynomial generating the sequence y. If the relation (12) is applied at the time of initialisation, we obtain particularly:

A _(i) ^(init)=(G _(y) ^(α) ^(i+G) _(y) ^(β) ^(i) )A _(y) ^(init)  (15)

The vectors A_(i) ^(init) can then be calculated in advance to avoid slowing the acquisition.

If there is an index i₀ such that:

A _(i) ^(q) =A _(i) ₀ ^(init)  (16)

it will be considered that the receiver is synchronised with the GPS signal of satellite i₀ and the acquisition method terminates at 490. By default, the acquisition method continues by incrementing q in 445, in other words starting from the next sample and returning to step 410.

FIG. 5 diagrammatically shows a variant of the acquisition method in FIG. 4.

Steps 510 to 545 are identical to steps 420 to 445 and therefore they will not be described.

The variant in FIG. 5 is different from the variant in FIG. 4 in that once the receiver has determined the index i₀ of the satellite with which it considers it is synchronised, it performs a verification phase. This verification phase considerably reduces the false alarm probability. It is particularly advantageous when the message passing decoding method is implemented in its simplified “Min-Sum” version mentioned above.

This verification phase is based on the following principle: if the detected sequence y_(i) ₀ is correct, then it can be used to find the M-sequence X starting from the received signal r_(q)(k), k=0, . . . , M−1.

More precisely, the received signal r_(q)(k)=r(k+q), k=0, . . . , M−1 is multiplied in step 550 with the Y_(i) ₀ (k)=1−2y_(i) ₀ (k), k=0, . . . , M−1 sequence, the bipolar representation of the M-sequence y_(i) ₀ . The sequence defined as follows is obtained:

{hacek over (r)} _(q)(k)=r _(q)(k)Y _(i) ₀ (k)  (17)

This operation eliminates sequence y_(i) ₀ from the received signal if this sequence is present in it:

{hacek over (r)} _(q)(k)=X(k)+{hacek over (w)}(k)  (18)

where X(k)=1−2 x(k), k=0, . . . , M−1 is the bipolar representation of M-sequence and {hacek over (w)}(k) contains all noise sources.

It will be understood that step 550 is “symmetric” to step 520.

Since the vector {hacek over (r)}_(q)(k), k=0, . . . , M−1 is a noisy observation of M consecutive chips of M-sequence X, iterative decoding is done in step 560 using a message passing algorithm of the “Sum-Product” or “Min-Sum” type. For example, if a Min-Sum algorithm was used for decoding {tilde over (r)}_(q)(k), k=0, . . . , M−1 in step 530, the algorithm type will advantageously be used to decode {hacek over (r)}_(q)(k), k=0, . . . , M−1. The constraints are given by the rows in the matrix H in which the coefficients are those of the generating polynomial g_(x)(D).

Regardless of the type of algorithm, decoding of the word {hacek over (r)}_(q)(k), k=0, . . . , M−1 (or only part of this word because it has very high redundancy) provides a vector {hacek over (X)}_(q)(k), k=0, . . . , M−r−1 (the index q was added to emphasise that this vector was obtained assuming that the sequence was synchronised at time q) from which only the first r values giving the content of the register at the initial time q by means of hard decisions, are used. The values {hacek over (X)}_(q)(k) are logarithmic likelihood ratios (LLR) and therefore the content of the shift register at time q is given as follows:

A ^(q)(k)=sgn({hacek over (X)} _(q)(k)), k=0, . . . , r−1  (19)

In step 570, it is verified if the vector A^(q) is equal to the initialisation vector of M-sequence x, in other words if A^(q)(k)=1, k=0, . . . , r−1.

If this is the case, in other words if the verification is positive, it is concluded that the receiver is well synchronised with the GPS signal from satellite i₀. The acquisition method then terminates at 590.

On the other hand, if this is not the case, synchronisation with the GPS signal from satellite i₀ is invalidated. The acquisition method continues by incrementing q at 575, in other words from the next sample and returning to step 510.

The false alarm probability for this variant is equal to P_(fa) ² where P_(fa) is the false alarm probability obtained with the acquisition method (without verification) in FIG. 4. Thus for example, if the false alarm probability without verification is 10⁻³, then the false alarm probability with verification will be of the order of 10⁻⁶.

FIG. 6 diagrammatically shows a GPS signal acquiring method according to a second embodiment of the invention.

This embodiment takes advantage of the fact that two M-sequences on the same Galois body GF(2^(r)) are related by a decimation relation. Thus, if u and v are two M-sequences generated by primitive polynomials with degree r, we obtain:

u(k)=v(dk+h)  (20)

where d is a decimation factor and h is a constant dependent on the initial content of the registers of M-sequences u and v.

For a preferred pair of sequences x, y, the decimation factor will be equal to d=2^(c)+1 with the condition gcd(2^(e)+1, 2^(r)−1)=1.

For generating polynomials g_(x) and g_(y) given in (4), r=10, it can then be demonstrated that e=6 and hence d=65 and considering the register initialisation words for sequences x, y:

y(k)=x(65k+27300)  (21)

If we define a sequence x_(i) by x_(i)(k)=x(k−65τ_(i)), we obtain:

y _(i)(k)=x _(i)(65k+27300)  (22)

The relation between sequence y_(i) and sequence x_(i) is independent of the index i, in other words it remains valid regardless of which satellite is used.

Once again, we will start by considering the synchronisation of the receiver relative to a satellite signal.

The receiver samples the received signal at the chip frequency after demodulation in base band and forms the vector r_(q)(k)=r(k+q) k=0, . . . , M−1 at each time q in 610, composed of M successive samples of the received signal.

A chip by chip multiplication of the received signal is made in step 620 with M-sequence x to obtain the reprocessed samples {tilde over (r)}_(q)(k), k=0, . . . , M−1 as defined in relation (6).

The M reprocessed samples are switched in step 630 using the following switching relation:

φ(k)=dk+h mod(N)  (23)

In other words for the generating polynomials g_(x) and g_(y) given in (4):

φ(k)=65k+27300 mod(1023)  (23′)

The sequence v_(q) obtained by switching these samples is formed:

v _(q)(φ(k))={tilde over (r)} _(q)(k), k=0, . . . , M−1  (24)

It will be noted that this switching is independent of which satellite i is being considered.

According to one variant not shown, LM rather than M samples r_(q) (k) are obtained in 610, and after chip by chip multiplication in 620, the sequence v_(q) is obtained by coherent summation on L blocks using sequence x (it will be remembered that this sequence is repeated at intervals M):

$\begin{matrix} {{{v_{q}\left( {\phi (k)} \right)} = {\sum\limits_{ = 0}^{L - 1}{{\overset{\sim}{r}}_{q}\left( {k + {\; M}} \right)}}},{k = 0},\ldots \mspace{14mu},{M - 1}} & \left( 24^{\prime} \right) \end{matrix}$

In all cases, iterative message passing decoding of word v_(q)(k), k=0, . . . , M−1 is then performed in step 640. This word actually represents a noisy observation of the x_(i)(k), k=0, . . . , M−1 sequence. Iterative decoding is done using the parity matrix H (according to expression (9), in which the coefficients g₀, . . . , g_(r) are the coefficients of the polynomial g_(x)(D)).

A sequence of logarithmic likelihood ratios (LLRs) denoted {hacek over (X)}_(i) ^(q)(k), k=0, . . . , M−1 is obtained at the end of iterative decoding.

Inverse switching of the samples {hacek over (X)}_(i) ^(q)(k), k=0, . . . , M−1, is done in step 650 to obtain the logarithmic likelihood ratios:

{hacek over (Y)} _(i) ^(q)(k)={hacek over (X)} _(i) ^(q)(φ(k))  (25)

The content of the shift register of sequence y_(i) at time q, is obtained in step 660, namely:

{hacek over (A)} _(i) ^(q)(k)=sgn({hacek over (Y)} _(i) ^(q)(k)), k=0, . . . , r−1  (26)

and the vector {hacek over (A)}_(i) ^(q) of components {hacek over (A)}_(i) ^(q)(k), k=0, . . . , r−1, is compared with the initialisation vectors of the different sequences y_(i), i=1, . . . , I, in other words with the vectors A_(i) ^(init) previously calculated using the expression (15).

If there is an index i₀ in 670 such that:

{hacek over (A)} _(i) ^(q) =A _(i) ₀ ^(init)  (27)

it is considered that the receiver is synchronised with the GPS signal from satellite i₀ and the acquisition method terminates in 690. Otherwise, the acquisition method continues by incrementing q at 675, in other words starting from the next sample and returning to step 610.

This second embodiment can also be broken down according to a variant shown in FIG. 7, in which a verification of synchronisation with satellite i₀ is made.

As already mentioned in the description of the first embodiment, this verification phase very much reduces the false alarm probability and is particularly advantageous when iterative decoding of v_(q)(k), k=0, . . . , M−1 is done according to the “Min-Sum” algorithm.

Steps 710 to 775 are identical to steps 610 to 675 and therefore they will not be described here. Only the verification phase will be described:

In step 780, the received signal r_(q)(k)=r(k+q), k=0, . . . , M−1 is multiplied by the sequence Y_(i) ₀ (k)=1−2y_(i) ₀ (k), k=0, . . . , M−1, the bipolar representation of M-sequence y_(i) ₀ . This multiplication eliminates M-sequence y_(i) ₀ from the received signal. The sequence {hacek over (r)}_(q) defined by expression (17) is obtained.

Iterative decoding is done in step 783 using a message passing algorithm of the “Sum-Product” or “Min-Sum type. For example, if a Min-Sum algorithm was used for decoding of v_(q)(k), k=0, . . . , M−1 in step 740, the algorithm type will advantageously be used for decoding of {hacek over (r)}_(q)(k), k=0, . . . , M−1. The constraints are given by the rows in the matrix H in which the coefficients in this case are the coefficients of the generating polynomial g_(x)(D).

Whatever algorithm type is used, decoding provides a vector {hacek over (X)}_(q)(k) k=0, . . . , M−1, from which only the first r components giving the content of the register at the initial time q by means of hard decisions, are used. Let A^(q) be the vector composed of the first r components in question.

In step 785, it will be verified if the vector A^(q) is equal to the initialisation vector of M-sequence x, in other words if A^(q)(k)=1, k=0, . . . , r−1.

If it is, in other words if the verification is positive, it will be concluded that the receiver is well synchronised with the GPS signal from satellite i₀. The acquisition method then terminates at 790.

On the other hand if this is not the case, synchronisation with the GPS signal from satellite i₀ is invalidated. The acquisition method continues by incrementing q at 787, in other words starting from the next sample, and returning to step 710.

In previous embodiments, the receiver determines if it is synchronised with the GPS signal of the C/A channel for a given satellite i₀ at a given time. In practice, the C/A channel comprises signals from a plurality of satellites with index i₀, . . . , i_(Q-1) where Q is the number of satellites visible to the receiver. The acquisition method presented above determines the satellite i₀ with the highest signal-to-noise ratio at the receiver. Once this first signal has been acquired, the signal received from satellite i₀, can be determined in base band:

$\begin{matrix} {{{\hat{r}}_{i_{0}}(k)} = {\left( {{\hat{\rho}}_{i_{0}}^{2{\pi j}{\hat{\theta}}_{i\; 0}}} \right){x_{i_{0}}(k)}^{2{\pi j}\; k\; {\hat{\Delta \; F}}_{i_{0}}T}}} & (28) \end{matrix}$

that can then be subtracted from the received signal in base band (expression (2)).

ρ̂_(i₀)^(2πjθ̂_(i 0))

is an estimate of the complex attenuation coefficient on the channel between the satellite and the receiver (for example obtained by means of pilot symbols) and

is the offset frequency estimated by the receiver. x_(i) ₀ (k) is a known synchronisation message of the receiver.

The acquisition of the second satellite can then be continued starting from signal r(k)−{circumflex over (r)}_(i) ₀ (k) and so on, using a SIC (Serial Interference Cancellation) scheme known per se. 

1. Method of acquiring a satellite signal by a receiver, said signal being spread by a Gold sequence (c_(i)) at a chip frequency, said Gold sequence being obtained as the sum of a first M-sequence (x) generated using a first shift register and a second M-sequence (y_(i)) generated using a second shift register, said second M-sequence identifying one satellite among a plurality of satellites, characterised in that: (a) the signal received in base band is sampled (410,510,610,710) at the chip frequency starting from a determined time (q) to provide a sequence of first samples (r_(q)(k), k=0, . . . , M−1); (b) the sequence of said first samples is multiplied (420,520,620,720), chip by chip, by said first M-sequence to provide a sequence of second samples ({tilde over (r)}_(q)(k), k=0, . . . , M−1): (c) the sequence of second samples is decoded using an iterative message passing decoding (430,530,640,740) to supply an estimate of the content of the second shift register at said determined time; (d) the content of the second shift register thus estimated is compared (440, 540, 660, 760) with a plurality of possible contents of the second shift register for the different satellites of said plurality, and if the comparison is successful for an identified satellite (i₀), the receiver is synchronised with said identified satellite at the determined time.
 2. Method of acquiring a satellite signal according to claim 1, characterised in that if the content of the second shift register thus estimated does not correspond to any of said possible contents, the determined time is incremented by one chip and steps (a) to (d) are iterated.
 3. Method of acquiring a satellite signal according to claim 1, characterised in that the content of the second shift register is estimated by taking hard decisions on the first r decoded values ({tilde over (Y)}_(i) ^(q)(k)) provided by the iterative message passing decoding, where r is the number of positions in the first/second shift register.
 4. Method of acquiring a satellite signal according to claim 3, characterised in that the iterative message passing decoding in step (c) uses the parity matrix: $H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$ in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the second M-sequence.
 5. Method of acquiring a satellite signal according to claim 1, characterised in that the second M-sequence being obtained by summating the contents in two positions α_(i), β_(i) of the second shift register, where i is an index identifying the satellite among said plurality of satellites, the possible contents of the second shift register for the different satellites are given by vectors: A _(i) ^(init)=(G _(y) ^(α) ^(i+G) _(y) ^(β) ^(i) )A _(y) ^(init) where A_(y) ^(init) is a vector giving the content of the second shift register at a reference time, and G_(y) is the state change matrix of the second shift register.
 6. Method of acquiring a satellite signal according to claim 1, characterised in that: the sequence of second samples is permuted (630,730) using a permutation relation φ(k)=dk+h mod(N) where k is the rank of the sample, d is a decimation factor, h is an offset value and N is the length of the first M-sequence, switching being done before step (c); step (c) provides a sequence of decoded values ({hacek over (X)}_(i) ^(q)(k)); the sequence of decoded values is permuted (650,750) using the permutation relation inverse to said permutation relation to provide a sequence of permuted values ({hacek over (Y)}_(i) ^(q)(k)); the content of the second shift register (660,760) is estimated by taking hard decisions on the first r values of the sequence of permuted values, where r is the number of positions in the first/second shift register.
 7. Method of acquiring a satellite signal according to claim 6, characterised in that the iterative message passing decoding in step (c) uses the parity matrix: $H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$ in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the first M-sequence.
 8. Method of acquiring a satellite signal according to claim 1, characterised in that it is checked that the receiver is properly synchronised with said identified satellite by: (e) multiplying the sequence of said first samples (550,780), chip by chip, by the second M-sequence associated with said identified satellite to provide a sequence of third samples (({hacek over (r)}_(q)(k), k=0, . . . , M−1); (f) decoding the sequence of third samples using an iterative message passing decoding (560, 783) to provide an estimate of the content of the first shift register at said determined time.
 9. Method of acquiring a satellite signal according to claim 8, characterised in that if the content of the first shift register thus estimated does not correspond to the initial content of the first register, the determined time is incremented by one chip and steps (a) to (f) are iterated.
 10. Method of acquiring a satellite signal according to claim 9, characterised in that the content of the first shift register is estimated by taking hard decisions on the first r decoded values ({hacek over (X)}_(q)(k), k=0, . . . , r−1) provided by the iterative message passing decoding, where r is the number of positions in the first/second shift register.
 11. Method of acquiring a satellite signal according to claim 8, characterised in that the iterative message passing decoding in step (f) uses the parity matrix $H = \begin{bmatrix} g_{r} & \ldots & g_{0} & 0 & \ldots & \ldots & 0 \\ 0 & g_{r} & \ldots & g_{0} & 0 & \ldots & 0 \\ \vdots & \ddots & \ddots & \ddots & \ddots & \ddots & \vdots \\ 0 & \ldots & 0 & g_{r} & \ldots & g_{0} & 0 \\ 0 & \ldots & \ldots & 0 & g_{r} & \ldots & g_{0} \end{bmatrix}$ in which g_(r)=1 and g₀, . . . , g_(r-1) are the coefficients of the polynomial generating the first M-sequence.
 12. Method of acquiring a satellite signal according to claim 8, characterised in that the iterative message passing decoding in step (c) and the iterative message passing decoding in step (f) both use a “Min-Sum” type algorithm. 